package com.yuzhi.master.drainAlarmRule.service;

import com.yuzhi.common.core.page.PageDataInfo;
import com.yuzhi.master.drainAlarmRule.domain.bo.DrainAlarmRuleBo;
import com.yuzhi.master.drainAlarmRule.domain.request.DrainAlarmRuleReq;
import com.yuzhi.master.drainAlarmRule.domain.vo.DrainAlarmRuleVo;
import com.yuzhi.master.drainEvents.domain.vo.DataDictionary;

import java.util.List;

public interface IDrainAlarmRuleService {

    Boolean insertByBo(DrainAlarmRuleBo bo);

    PageDataInfo selectPageList(DrainAlarmRuleReq request);

    Boolean insertOrUpdateBo(DrainAlarmRuleBo bo);

    /**
     * 修改报警规则和对应的条件
     * @param bo 报警规则业务对象
     * @return 操作结果
     */
    Boolean updateRuleAndConditions(DrainAlarmRuleBo bo);

    Boolean updateByBo(DrainAlarmRuleBo bo);

    Boolean deleteWithValidByIds(List<String> ids, boolean valid);

    Boolean alarmSwitchStatus(DrainAlarmRuleBo bo);

    List<String> getExistFacilityType(DrainAlarmRuleReq request);

    Boolean updateIntervalValue(DrainAlarmRuleReq request);

    Boolean removeRuleConditionById(List<String> list, boolean b);

    List<DataDictionary> alarmRuleDictionary();

    List<String> getMonitorItemName(DrainAlarmRuleReq types);

    /**
     * 按照条件查询告警规则
     * @param request
     * @return
     */
    List<DrainAlarmRuleVo>  queryDrainAlarmRule(DrainAlarmRuleReq request);
}
